﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SaludOcupacional.DataAccess;
using SaludOcupacional.Exceptions;
using SaludOcupacional.Model;

namespace SaludOcupacional.Controller
{
    public class DatosIngresoManager
    {
        public static void RegistrarDatosIngreso(DatosIngreso datosIngreso)
        {
            if (datosIngreso == null)
                throw new LoginException("los Datos de Ingreso No Pueden Ser Nulo!");

            using (EmpleadoDataAccess daccess = new EmpleadoDataAccess())
            {
                daccess.CrearDatosIngreso(datosIngreso);
            }
        }

        public static DatosIngreso GetDatosIngresoByCi(string ci)
        {
            DatosIngreso u;
            if (string.IsNullOrEmpty(ci))
                throw new LoginException("ci");

            using (EmpleadoDataAccess daccess = new EmpleadoDataAccess())
            {
                u = daccess.GetDatosIngresoByCi(Convert.ToInt32(ci));
            }

            return u;
            
        }

        public static void EditarDatos(DatosIngreso datosIngreso)
        {
            if (datosIngreso == null)
                throw new LoginException("Los Datos De Ingreso No Puede Ser Nulo!");

            using (EmpleadoDataAccess daccess = new EmpleadoDataAccess())
            {
                daccess.EditarDatos(datosIngreso);
            }

            
        }

        public static void ValidarDatosIngreso(string puestoTrabajo, string fechaIngreso, string fechaTraslado, string fechaSalida)
        {
            if(puestoTrabajo == "")
                throw new LoginException("Ingrese Puesto De Trabajo!");
            if(fechaIngreso == "")
                throw new LoginException("Ingrese fecha de Ingreso!");
            if (Convert.ToDateTime(fechaIngreso) > DateTime.Now)
                throw new LoginException("Fecha de Ingreso No Puede Ser Mayor A fecha Actual");
            
            if(fechaSalida == "")
                throw new LoginException("Ingrese fecha Salida!");
            if (Convert.ToDateTime(fechaSalida) < DateTime.Now)
                throw new LoginException("Fecha de Salida No Puede Ser Menor A fecha Actual");

            if (fechaTraslado == "")
                throw new LoginException("Ingrese Fecha de Traslado!");
            if (Convert.ToDateTime(fechaTraslado) < DateTime.Now)
                throw new LoginException("Fecha de Traslado No Puede Ser Menor A fecha Actual");

            if (Convert.ToDateTime(fechaTraslado) > Convert.ToDateTime(fechaSalida))
                throw new LoginException("Fecha de Traslado No Puede Ser Mayor A fecha De Traslado");
        }
    }
}
